<?php
class Page_ControlPanelController extends XPHP_Controller
{
    public function _init()
    {
        $this->loadLayout('ControlPanel/XAdmin');
    }

    #[Authorize(roles = 'Administrator')]
    public function indexAction()
    {
        $model = new Areas_Page_Models_Page();
        $pages = $model->getPages();
        //Delete url
        $deleteUrl = $this->url->action("delete");
        //Xử lý
        for ($i = 0; $i < count($pages); $i++) {
            //Chuyển định dạng ngày tháng năm
            $pages[$i]->date_create = XPHP_Date::isTheDay(
                $pages[$i]->date_create);
            //Edir url
            $editUrl = $this->url->action("edit",
                                          array($pages[$i]->id));
            //Thêm cột lựa chọn hành động
            $pages[$i]->action = "<a href='{$editUrl}' class='button ico-btn ico-text-edit tool-tip' title='{$pages[$i]->title}' rel='edit'>
            					</a>
            					<a href='{$deleteUrl}' class='button ico-btn ico-text-trash tool-tip' item='{$pages[$i]->title}' title='{$pages[$i]->title}' 
            					data='{$pages[$i]->id}' rel='delete'>
            					</a>";
        }
        //Trả về view
        $this->view->pages = $pages;
        return $this->view();
    }

    #[Authorize(roles = 'Administrator')]
    public function createAction()
    {
        return $this->view();
    }

    #[Authorize(roles = 'Administrator')]
    public function createPost(Areas_Page_Models_Page $mode)
    {
        if ($this->model->validate()) {
            $this->model->date_create = XPHP_Date::toTime(date("H:i:s d/m/y"));
            if ($this->model->insert())
                return $this->json(
                    array('success' => true,
                         'message' => 'Thêm trang mới thành công'));
            else
                return $this->json(
                    array('success' => false,
                         'message' => 'Xảy ra lỗi khi thêm trang mới'));
        } else
            return $this->json(
                array('success' => false,
                     'message' => 'Thông tin nhập vào chưa hợp lệ'));
    }

    public function importAction()
    {
    }

    #[Authorize(roles = 'Administrator')]
    public function editAction()
    {
        $model = new Areas_Page_Models_Page($this->params[0]);
        return $this->view($model);
    }

    #[Authorize(roles = 'Administrator')]
    public function editPost(Areas_Page_Models_Page $mode)
    {
        if ($this->model->validate()) {
            if ($this->model->update())
                return $this->json(
                    array('success' => true,
                         'message' => 'Cập nhật trang nội dung thành công'));
            else
                return $this->json(
                    array('success' => false,
                         'message' => 'Xảy ra lỗi khi cập nhật trang nội dung '));
        } else
            return $this->json(
                array('success' => false,
                     'message' => 'Các thông tin nhập vào chưa hợp lệ'));
    }

    #[Authorize(roles = 'Administrator')]
    public function deleteAction(Areas_Page_Models_Page $model)
    {
        if ($this->model->delete()) {
            return $this->json(
                array('success' => true, 'message' => 'Xóa trang thành công'));
        } else
            return $this->json(
                array('success' => false,
                     'message' => 'Xảy ra lỗi khi cố xóa trang'));
    }
}